package com.shanghe.house.entity;

import java.time.LocalDateTime;

import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;

import lombok.Getter;
import lombok.Setter;

/**
 * 定时任务实体类
 * 用于管理设备的定时控制，可以在指定时间改变设备状态
 */
@Getter
@Setter
@TableName("timers")
public class Timer {
    @TableId(type = IdType.AUTO)
    private Long id;  // 定时任务ID，主键自增

    private String name;  // 任务名称，不能为空

    private Long deviceId;  // 关联的设备ID

    private Boolean targetStatus = false;  // 目标状态

    private String cronExpression;  // Cron表达式，定义执行时间

    private Boolean status = true;  // 任务状态，默认启用

    @TableField(exist = false)
    private Device device;  // 关联的设备对象

    @TableField(exist = false)
    private Integer intervalMinutes; // 添加间隔分钟数字段，不保存到数据库

    @TableField(fill = FieldFill.INSERT)
    private LocalDateTime createTime;  // 创建时间，自动生成

    @TableField(fill = FieldFill.INSERT_UPDATE)
    private LocalDateTime updateTime;  // 更新时间，自动更新
} 